/*
 *  Theroy0039_ClassifiedChords.h
 *  SoundController0002
 *
 *  Created by jiro on 11/07/17.
 *  Copyright 2011 jiro music. All rights reserved.
 *
 */

#pragma once

#include "Theory0039_SingleGroupGenerator.h"
#include "Theory0039_Chord.h"
#include "../../sc/Common/Note.h"
#include <string>
#include <vector>

namespace theory0039 {

	class ClassifiedChords
	{
	private:

		std::vector< std::string > classNames;

		std::vector< std::vector< Chord > > chordsList;

	public:

		void AddId( const std::string& id ); 

		void AddChord( const std::string& id, const Chord& chord );

		void AddChords( const std::string& id, const std::vector< Chord >& chords );
		
		void SetChords( int index, const std::vector< Chord >& chords );

		int GetClassCount() const;

		std::string GetClassNameOfIndex( int index ) const;

		int GetIndexOfId( const std::string& id ) const;

		const std::vector< Chord >& GetChords( const std::string& id ) const;

		const std::vector< Chord >& GetChords( int index ) const;

		void Clear();
	};

}